El desarrollo de enfermedades laborales pueden ocasionar bajas laborales. Estas enfermedades se producen en el ámbito laboral según el trabajo realizado, queremos estudiar como el desarrollo de estas enfermedades se puede agravar por poseer una enfermedad mental, incluso si la gravedad de la enfermedad laboral es distinta entre géneros o debido a la profesión realizada.
Evaluación del desarrollo de enfermedades laborales, respecto a la profesión y el estado de salud mental.
Uno de ellos tambien estudia la incidencia de enfermedades segun la economia y el sexo de los encuestados. Segun el sexo hay diferencias significativas donde los hombres tienen mayor numero de enfermedades, ya que son estos los que ocupan los trabajos fisicos exigentes. En cuanto al tipo de trabajo el sector de la mineria, construcción y agricultura resultan los que mas enfermedades se tienen.
Otro articulo que nos ha resultado interesante es el siguiente: en Reino Unido se estudio que el personal de construccion tiene mas probabilidad de suicidarse que el promedio nacional. Según los redactores comentan que se debe a que los trabajadores no quieren buscar ayuda terapeutica, y los contratos de largas jornadas y lejos de la familia tampoco ayudan. Por ello determinan que concienciar sobre este problema y quitar el estigma es importante.
Agregamos los URL del lugar de obtención de los datos:
Agregamos el URL del repositorio: - Repositorio
Paquetes necesarios para JSON
# Paquetes necesarios para JSON
#install.packages("tidyjson")
Paquetes necesarios para xls
# Paquetes necesarios para xls
#install.packages("readxl")
Paquetes necesarios para csv
# Paquetes necesarios para csv
#install.packages("readr")
Paquetes necesarios para xlsx
# Paquetes necesarios para xlsx
#install.packages("readxl")
Paquete necesario para la manipulación de dataframes
# Paquete necesario para la manipulación de dataframes
#install.packages("dplyr")
Paquete necesario para transformar las filas y columnas
# Paquete necesario para transformar las filas y columnas
#install.packages("tidyverse")
Paquete para mostrar las tablas formatedas
#Paquete para mostrar tablas formatedas
#install.packages("DT")
Paquete necesario para la implementación de gráficos
#install.packages("ggplot2")
Podemos descargar los datos de Canarias en formato .csv de la página web de datos del gobierno de España, desde R mediante este código:
#install.packages("readxl")
library(readxl)
# URL del archivo Excel en GitHub
url <- "https://github.com/Lucia-G-R/Seminario_Fuentes/blob/main/INPUT/DATA/Enfermedades_laborales_Espa%C3%B1a.csv.csv"
# Creamos un archivo temporal para almacenar el Excel
temp <- tempfile(fileext = ".csv")
# Descargamos el archivo desde GitHub
download.file("https://datos.gob.es/es/catalogo/a05003423-poblacion-de-16-y-mas-anos-segun-autovaloracion-del-estado-de-salud-en-relacion-a-situaciones-de-ansiedad-o-depresion-sexos-o-grupos-de-edad-por-anos-canarias-2004-2009", destfile = temp, mode = "wb")
Queremos extraer los datos sobre las enfermedades laborales que suceden en España. Como es un archivo con extensión .JSON con listas anidadas sin etiquetar, no podemos utilizar directamente un tibbe para ello, utilizaremos tidyjson.
library(rjson)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyjson)
##
## Adjuntando el paquete: 'tidyjson'
##
## The following object is masked from 'package:stats':
##
## filter
library(dplyr)
library(DT)
# Cargamos el archivo JSON, pero está en formato de lista.
espana_json <- fromJSON(file = "INPUT/DATA/Enfermedades_laborales_España.json")
# Observamos la estructura, nos damos cuenta que posee listas anidadas
#str(espana_json)
# Convertimos la lista de la varable MetaData en un dataframe
MetaData_df<-
espana_json%>%
enter_object("MetaData")%>% # Extreamos la infromación dentro de "MetaData"
gather_array() %>% # Convierte los elementos de un array en filas
spread_all()%>% # Esta función distribuye cualquier objeto JSON que sea escalar en nuevas columnas
select(T3_Variable, Nombre, Codigo) # Seleccionamos las tres variables que posee
# Convertimos la lista de la variable Data en un dataframe
Data_df<-
espana_json%>%
enter_object("Data")%>% # Extreamos la infromación dentro de "Data"
gather_array() %>%
spread_all()%>%
select(Valor) # Seleccionamos la variable que posee
# Unimos MetaData_df y Data_df usando "..JSON". Extraemos la columna "..JSON" como identificador
# Expandimos la columna "..JSON" con prefijo para evitar conflictos de nombres
MetaData_df <-
MetaData_df %>%
unnest_wider(..JSON, names_sep = "_json")
Data_df <-
Data_df %>%
unnest_wider(..JSON, names_sep = "_json")
# Creamos un identificador único para cada fila
MetaData_df <-
MetaData_df %>%
mutate(id = row_number())
Data_df <-
Data_df %>%
mutate(id = row_number())
# Hacemos la unión de los df por la columna id que hemos creado con la variable lista "..JSON"
espana_df <-
MetaData_df %>%
left_join(Data_df, by = "id") %>% # Unimos con Data_df usando 'id'
mutate(Nombre = espana_json$Nombre) # Agregamos la columna "Nombre" del espana_json
#attributes(MetaData_df)
#attributes(Data_df)
#print(MetaData_df)
#print(Data_df)
#print(espana_json)
#print(espana_df)
datatable(espana_df)
Queremos extraer los datos sobre los accidentes laborales que suceden en Canarias. Como es un archivo con extensión .xls, utilizamos read_excel.
# Cargamos los archivos con extensión .xls
library(readxl)
library(DT)
canarias_df <- read_excel("INPUT/DATA/Accidentes_laborales_Canarias.xls")
#class(canarias_df)
#print(canarias_df)
datatable(canarias_df)
Queremos extraer los datos sobre la salud mental en los habitantes de Canarias. Como es un archivo con extensión .csv, utilizamos read_delim e indicamos que el delimitador es ; Al imprimirlo como tabla con la función datatable nos da un error con el formato, es decir, indica que hay un problema con la codificación del archivo CSV. En este caso, el error nos indica que los archivos están codificados en UTF-8, pero revisando la tabla incluye caracteres como acentos. Por eso, utilizamos locale que es una forma de configurar la codificación de caracteres que define cómo se representan los caracteres de texto en bytes. En conclusión con encoding = “ISO-8859-1” queremos que R interprete el archivo usando la codificación Latin-1, esta configuración asegura que los caracteres especiales se lean e interpreten de forma adecuada, evitando caracteres raros.
# Cargamos los archivos con extensión .csv
library(readr)
library(DT)
Salud_df <- read_delim ("INPUT/DATA/Estados_de_salud_Canarias.csv.csv", delim = ";", locale = locale(encoding = "ISO-8859-1"))
## Rows: 100 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (3): sexos_grupos_edad, indicadores, autovaloracion_estado_salud_relacio...
## dbl (2): anios, poblacion_16_mas_anios
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#class(Salud_df)
datatable(Salud_df)
Queremos extraer los datos sobre la gravedad de las enfermedades laborales producidas en Aragón. Como es un archivo con extensión .xlsx, utilizamos read_excel.
# Cargamos los archivos con extensión .xlsx
library(readxl)
library(DT)
Aragon_df <- read_excel ("INPUT/DATA/070901-02_Por grado y sexo. Aragon.xlsx")
## New names:
## • `Grupo Grado Código` -> `Grupo Grado Código...4`
## • `Grupo Grado Código` -> `Grupo Grado Código...5`
#class(Aragon_df)
print(Aragon_df)
## # A tibble: 121 × 6
## Año Sexo `Nº Accidentes` `Grupo Grado Código...4` Grupo Grado Código..…¹
## <dbl> <chr> <dbl> <chr> <dbl>
## 1 2023 Hombres 12082 Leves 1
## 2 2023 Mujeres 4784 Leves 1
## 3 2022 Hombres 11954 Leves 1
## 4 2022 Mujeres 5073 Leves 1
## 5 2021 Hombres 11559 Leves 1
## 6 2021 Mujeres 4739 Leves 1
## 7 2020 Hombres 10651 Leves 1
## 8 2020 Mujeres 4727 Leves 1
## 9 2019 Hombres 11909 Leves 1
## 10 2019 Mujeres 4511 Leves 1
## # ℹ 111 more rows
## # ℹ abbreviated name: ¹`Grupo Grado Código...5`
## # ℹ 1 more variable: CCAA <chr>
datatable(Aragon_df)
Observamos los valores nulos del conjunto de datos sobre los accidentes laborales que suceden en Canarias. Con select observamos las columnas que poseen valores nulos..
library(dplyr)
canarias_df %>%
select(where(~ all(is.na(.))))
## # A tibble: 6,480 × 3
## CONFIDENCIALIDAD_OBSERVACION#…¹ `NOTAS_OBSERVACION#es` ESTADO_OBSERVACION#e…²
## <lgl> <lgl> <lgl>
## 1 NA NA NA
## 2 NA NA NA
## 3 NA NA NA
## 4 NA NA NA
## 5 NA NA NA
## 6 NA NA NA
## 7 NA NA NA
## 8 NA NA NA
## 9 NA NA NA
## 10 NA NA NA
## # ℹ 6,470 more rows
## # ℹ abbreviated names: ¹`CONFIDENCIALIDAD_OBSERVACION#es`,
## # ²`ESTADO_OBSERVACION#es`
Vamos a cambiar los nombres de las distintas columnas de los datos extraídos. Cambiamos los nombres de las columnas del conjunto de datos sobre los accidentes laborales que suceden en Canarias.
library(tidyverse)
library(DT)
#attributes(canarias_df)
canarias <- rename(.data = canarias_df, Año = `TIME_PERIOD#es`, Año2 = `TIME_PERIOD_CODE`, Sexo = `SEXO#es`, SexoCod = `SEXO_CODE`, Gravedad = `ACCIDENTE_GRAVEDAD#es`, GravedadCod = `ACCIDENTE_GRAVEDAD_CODE`, TipoTrab = `TIPO_TRABAJO#es`, TipoTrabCod = `TIPO_TRABAJO_CODE`, TrabHabitual = `TRABAJO_HABITUAL#es`, TrabHabCod = `TRABAJO_HABITUAL_CODE`, Obs = `OBS_VALUE`, ConfeciObs = `CONFIDENCIALIDAD_OBSERVACION#es`, Notasobs = `NOTAS_OBSERVACION#es`, Estadosobs = `ESTADO_OBSERVACION#es`)
datatable(canarias)
Cambiamos los nombres de las columnas del conjunto de datos sobre la gravedad de las enfermedades laborales producidas en Aragón.
library(tidyverse)
library(DT)
#attributes(Aragon_df)
Aragon <- rename(.data = Aragon_df, NumAcci = `Nº Accidentes`, Gravedad = `Grupo Grado Código...4`, GravedadCod = `Grupo Grado Código...5`)
#print(Aragon)
datatable(Aragon)
Cambiamos los nombres de las columnas del conjunto de datos sobre las enfermedades laborales que suceden en España.
library(tidyverse)
library(DT)
#attributes(espana_df)
Espana <- rename(.data = espana_df, TipoEnf = `T3_Variable`, Indicador = `Codigo`, Variable = `..JSON_jsonT3_Variable`, Nombre = `..JSON_jsonNombre`, Codigo = `..JSON_jsonCodigo`, jsonValor = `..JSON_jsonValor`)
#print(Espana)
datatable(Espana)
Cambiamos los nombres de las columnas del conjunto de datos sobre la salud mental en los habitantes de Canarias.
library(tidyverse)
library(DT)
#attributes(Salud_df)
Salud <- rename(.data = Salud_df, Sexo = `sexos_grupos_edad`, EstadoAnsiedad = `autovaloracion_estado_salud_relacion_situaciones_ansiedad`, Años = `anios`, Obs = `poblacion_16_mas_anios`)
#print(Salud)
datatable(Salud)
Eliminamos las columnas que no nos va a interesar estudiar para ello, seleccionamos las columnas que nos interesan. En el único conjunto de datos que no vamos a eliminar columnas es en los datos sobre la salud mental en los habitantes de Canarias. Primero vamos a eliminar las columnas del conjunto de datos de canarias. Nos vamos a quedar solo con las columnas Año, Sexo, Gravedad, TipoTrab y Obs.
library(dplyr)
canarias <-
canarias%>%
select(Año, Sexo, Gravedad, TipoTrab, Obs)
datatable(canarias)
En segundo lugar, eiminamos las columnas del conjunto de datos de Aragon. Nos vamos a quedar solo con las columnas Año, Sexo, NumAcci y Gravedad.
library(dplyr)
Aragon <-
Aragon%>%
select(Año, Sexo, NumAcci, Gravedad)
datatable(Aragon)
En tercer lugar, eliminamos las columnas del conjunto de datos de Espana. Nos vamos a quedar solo con las columnas Nombre, id y Valor.
library(dplyr)
Espana <-
Espana%>%
select(Nombre, id, Valor)
datatable(Espana)
Vamos a urilizar las columnas Año, Sexo, Gravedad y Obs para que en una nueva columna Categoria sea más doierenciada y representativa. Para ello, vamos a categorizar el nivel de gravedad según el número de accidentes. - Si la Gravedad es Total y las Obs mayorores que 5000 vamos a categorizarlo como Alta gravedad. - Si la Gravedad es Total, pero las Obs son menores o iguales que 5000 vamos a categorizarlo como Baja gravedad. - También vamos a diferenciar las Obs de accidentes laborales por Sexo. Realizamos cuatro categorías dos si el Sexo es Mujer diferenciaremos entre Alta gravedad o Baja gravedad y lo mismo si el Sexo es Hombre. - Si el Sexo son los dos sexos juntos, es decir, Total se categoriza como Otro. Esta última condición succede cuando ninguna condición anterior cumple con los requisitos.
library("DT")
canarias_when <-
canarias %>%
mutate(Categoria = case_when(
Gravedad == "Total" & Obs > 5000 ~ "Alta gravedad",
Gravedad == "Total" & Obs <= 5000 ~ "Baja gravedad",
Sexo == "Mujeres" & Obs > 1000 ~ "Accidentes Mujeres - Alto",
Sexo == "Hombres" & Obs > 1000 ~ "Accidentes Hombres - Alto",
Sexo == "Mujeres" & Obs <= 1000 ~ "Accidentes Mujeres - Bajo",
Sexo == "Hombres" & Obs <= 1000 ~ "Accidentes Hombres - Bajo",
.default = "Otro"
))
datatable(canarias_when)
Utilizamos mutate para sacar el porcentaje que representa cada observación respecto al conjunto de observaciones del conjunto de datos de canarias. Con options(scipen=999) evitamos la notación científica.
library(dplyr)
library(DT)
options(scipen = 999)
datatable(mutate(.data = canarias, Porcentaje_Obs = (Obs / sum(Obs)) * 100))
Observamos que existen valore nulos en la variable Valor del dataframe de España, por lo que para poder utilizar el mutate necesitamos eliminar aquellos valores vacíos. En primer lugar, nos quedamos solo con los valores distintos de nulos, es decir, los valores de nuetros interés. En segundo lugar, utilizamos mutate para crear una nueva columna denominada Porcentaje_Valor que recoge el porcentaje que representa cada observación respecto al conjunto de observaciones del conjunto de datos de España denominado Espana. Con options(scipen=999) evitamos la notación científica.
library(dplyr)
library(DT)
Espana <-
Espana %>%
filter(!is.na(Valor))
options(scipen = 999)
datatable(mutate(.data = Espana, Porcentaje_Valor = (Valor / sum(Valor)) * 100))
Realizamos un dataframe uniendo los datos sobre la gravedad de las enfermedades laborales en Aragón y la salud mental de los ciudadanos en Canarias.
library(DT)
# Unimos por una columna común "Sexo"
df_Salu_Arag <- merge(Aragon, Salud, by = "Sexo")
datatable(df_Salu_Arag)
Realizamos un dataframe uniendo los datos sobre los accidentes laborales que suceden en Canarias y los datos sobre las enfermedades mentales.
library(DT)
canarias_dis <-
canarias %>%
distinct(Año, .keep_all = TRUE)
Salud_dis <-
Salud %>%
distinct(Años, .keep_all = TRUE)
df_cana_Salud <-
canarias_dis %>%
inner_join(Salud_dis, by = c("Año" = "Años"))
datatable(df_cana_Salud)
Vamos a transponer la estructura de nuestra tabla ordenada Espana de la columna Nombre desde largo a ancho, es decir, los Valores presentes en la columna Espana pasan a formar tres columnas.
Long_Espana <- pivot_wider(data = Espana, names_from = "Nombre", values_from = "Valor")
datatable(Long_Espana)
Eliminamos las filas que no nos va a interesar estudiar.
Salud <- subset(Salud, !Sexo %in% c("De 16 a 64 a\xf1os", "De 65 y m\xe1s a\xf1os"))
Seleccionamos las primeras 5 filas del conjunto de datos Salud que contiene los estados de ansiedad.
library("DT")
datatable(slice_head(.data = Salud, n =5))
Seleccionamos las últimas 5 filas del conjunto de datos de Aragón que contiene el número de accidentes por años.
library("DT")
datatable(slice_tail(.data = Aragon, n =5))
Escogemos un conjunto de filas, exactamente 10 filas aleatorias del conjunto de datos de Long_Espana en el cual hemos pivotado los valores de una columna a formar tres columnas distintas.
library("DT")
datatable(slice_sample(.data = Long_Espana, n = 10))
library("DT")
datatable(slice_max(.data = canarias, order_by = Año))
Ordena las filas de manera descendente según los niveles de gravedad de accidentes del conjunto de datos de Aragón.
library("DT")
datatable(arrange(.data = Aragon, desc(factor(Gravedad)), NumAcci))
Calculamos el número total, las observacione son los registros , el mínimo, el máximo y la medianda de accidentes laborales en los Años 2004 y 2009 con el dataframe conjunto del conjunto de datos de salud mental y el número de accidentes labotrales.
info_acci<-
df_Salu_Arag%>%
group_by(Años)%>%
summarise(
Acci_total = sum(NumAcci),
Acci_Obs = n(),
Min_Aci = min(NumAcci),
Max_Aci = max(NumAcci),
Mediana_Aci = median(NumAcci)
)
datatable(info_acci)
<<<<<<< HEAD Calcula de la media y el porcentaje de personas evaluadas
En 2021 el numero de habitantes en Aragón fue de 1331938 , en 2011 hubo 1344501 personas y en 2001, 1204215. Se ha calculado la media de la población censada y se ha determinado el porcentaje de personas que se evaluaron según la población total. ======= Cantidad de hombres y mujeres del dataframe >>>>>>> 04afde52482a2798a1eb408c24d09d0f1cccb20e
hombres <- sum(df_Salu_Arag$Sexo == "Hombres")
mujeres <- sum(df_Salu_Arag$Sexo == "Mujeres")
print(paste("La cantidad dehombres y mujeres en el dataframe es", hombres, "y", mujeres, "respectivamente"))
## [1] "La cantidad dehombres y mujeres en el dataframe es 1260 y 1160 respectivamente"
suma_arag <- sum(hombres, mujeres)
"2021" <- 1331938
"2011" <- 1344501
"2001" <- 1204215
años <- c(`2021`, `2011`, `2001`)
media <- mean(años)
print(paste("La media de los habitantes en Aragón entre 2001 y 2021 es", media))
## [1] "La media de los habitantes en Aragón entre 2001 y 2021 es 1293551.33333333"
porcentaje <- (suma_arag / media) * 100
print(paste("El porcentaje de personas que han participado en la evaluación de accidentes laborales y sus consecuencias es", porcentaje, "%"))
## [1] "El porcentaje de personas que han participado en la evaluación de accidentes laborales y sus consecuencias es 0.187081868159336 %"
Este gráfico muestra el numero de accidentes en el mundo de la construcción separados por sexos y según la gravedad del accidente. Podemos observar que en hombres hay mas accidentes que en el sexo contrario y en ambos casos estos son de gravedad leve.
library(ggplot2)
library(dplyr)
# Filtramos y agrupamos por sexo y gravedad
df_resultado <- df_Salu_Arag %>%
filter(Gravedad == "Leves" |
Gravedad == "Mortales" |
Gravedad == "Graves o muy graves") %>%
group_by(Sexo, Gravedad, NumAcci) %>%
summarise(casos = n(), .groups = 'drop')
grafico_f1 <- ggplot(df_resultado, aes(x = Gravedad, y = NumAcci, fill = Sexo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(x = 'Gravedad accidentes',
y = 'Numero de casos',
title = 'Numero de accidentes según la gravedad y separados por sexos ',
fill = 'Sexo') +
facet_wrap(~Sexo)
print (grafico_f1)
Este gráfico muestra la diferencia de casos de ansiedad entre hombres y mujeres y el tipo de ansiedad. Hemos querido eliminar los indiviudos que no saben (o no contesta) o total ya que no daban información de valor y nos hemos quedado con la que realmente proporcionaba alguna conclusión. En este caso los hombres padecen mas ansiedad que las mujeres. Los niveles de ansiedad son iguales en todos los casos
grafico_f <- df_Salu_Arag %>%
filter(!(EstadoAnsiedad %in% c("No sabe/No contesta", "Total"))) %>%
group_by(Año, Sexo, EstadoAnsiedad) %>%
summarise (count = n(), .groups = "drop")
grafico_f2 <- ggplot(grafico_f, aes(x = Año, y = count, fill = EstadoAnsiedad)) +
geom_bar(stat = "identity", position = "dodge") +
labs(x = 'Año',
y = 'Personas',
title = 'Ansiedad según sexo y grado',
fill = 'Ansiedad') +
facet_wrap(~Sexo)
print(grafico_f2)
Imágenes que muestran los daños que ocurren en los distintos casos:
En este apartado vamos a realizar diferentes funciones con tapply para poder hallar el número de accidentes u obserrvaciones según el año, el sexo por tipo de trabajo. Con esta función pretendemos hallar el total de accidentes que existen en cada una de las profesiones presentes en nuestro conjunto de datos de Canarias.
library("DT")
acci_trab <- tapply(canarias$Obs, canarias$TipoTrab, sum, na.rm = TRUE)
acci_trab_df <- data.frame(
TipoTrab = names(acci_trab),
TotalAcci = as.numeric(acci_trab)
)
datatable(acci_trab_df)
Con esta función pretendemos hallar la media de accidentes que existen según el sexo, además de la gravedad de estos que se encuentran en nuestro conjunto de datos de Canarias.
library("DT")
sexo_gravedad <- tapply(canarias$Obs, list(canarias$Sexo, canarias$Gravedad), mean, nar.rm = TRUE)
datatable(sexo_gravedad)
Con esta función pretendemos hallar el total de accidentes que existen en cada una de las profesiones a lo largo de los años presentes en nuestro conjunto de datos de Canarias.
library("DT")
año_trabajo <- tapply(canarias$Obs, list(canarias$Año, canarias$TipoTrab), sum, na.rm = TRUE)
datatable(año_trabajo)
Añadimos un gráfico de barras para observar el número de accidentes laborales sucedidos durante los difrentes años en Aragón. Para ello, utilizaremos el atributo de Año y NumAcci del conjunto de datos sobre los accidentes laborales en Aragón.
#library(tidyverse)
#library(ggplot2)
grafico_barra <- ggplot(Aragon, aes(x = Año, y = NumAcci)) +
geom_bar(stat = "identity", fill = "darkturquoise") +
xlab("Año del suceso") +
ylab("Número de accidentes laborales") +
ggtitle(label = "Número de accidentes según el año del suceso")
print(grafico_barra)
## Facetas
library(tidyverse)
library(ggplot2)
facetas <- ggplot(Salud, aes(x = Obs, y = EstadoAnsiedad)) +
geom_point(aes(colour = factor(Años), shape=factor(Sexo))) +
xlab("Observaciones") +
ylab("Tipos de estados de ansiedad") +
ggtitle(label = "Observaciones del estado de ansiedad según el año")
print(facetas)
añadir los dos url de los articulos https://www.omniamachinery.com/es/2022/05/mental-health-in-construction/
Enfermedades relacionadas con el trabajo. (2024, 9 diciembre). Safety And Health At Work EU-OSHA. https://osha.europa.eu/es/themes/work-related-diseases
Human verification. (s. f.). Stack Overflow. https://stackoverflow.com/search?q=input+string+1+is+invalid+UTF-8
World Health Organization: WHO. (2022b, junio 8). Trastornos mentales. https://www.who.int/es/news-room/fact-sheets/detail/mental-disorders
Gómez, M. G., López, R. C., Ortiz, Z. H., & Soria, F. S. (s. f.). Reconocimiento de enfermedades profesionales según sexo, ocupación y actividad de la empresa en España (1999-2009). https://www.redalyc.org/journal/170/17049838011/html/#:~:text=Fundamentos%3A%20Seg%C3%BAn%20las%20estad%C3%ADsticas%20oficiales,participaci%C3%B3n%20en%20el%20mundo%20laboral.
imagen censo aragon https://www.aragon.es/documents/20127/93712584/A02.pdf/aa2a23e9-276a-fd04-516b-31a57073aa52?t=1671191689721